package com.example.ruoyivoicecall.common;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * 文件下载和上传工具类
 */
public class FileDownloadAndUpload {
    
    /**
     * 从URL下载文件
     * @param fileUrl 文件URL
     * @param fileName 保存的文件名
     * @param savePath 保存路径
     * @return 是否下载成功
     */
    public static Boolean downLoadFromUrl(String fileUrl, String fileName, String savePath) {
        try {
            // 创建保存目录
            File saveDir = new File(savePath);
            if (!saveDir.exists()) {
                saveDir.mkdirs();
            }
            
            // 构建保存的文件路径
            String filePath = savePath + File.separator + fileName;
            
            // 建立连接
            URL url = new URL(fileUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);
            conn.setRequestMethod("GET");
            conn.setRequestProperty("User-Agent", "Mozilla/5.0");
            
            // 检查响应状态
            if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
                System.out.println("下载文件失败，响应码: " + conn.getResponseCode());
                return Boolean.FALSE;
            }
            
            // 获取输入流
            InputStream inStream = conn.getInputStream();
            
            // 创建文件输出流
            FileOutputStream fs = new FileOutputStream(filePath);
            
            // 下载文件
            byte[] buffer = new byte[1024];
            int byteRead;
            while ((byteRead = inStream.read(buffer)) != -1) {
                fs.write(buffer, 0, byteRead);
            }
            
            // 关闭流
            inStream.close();
            fs.close();
            conn.disconnect();
            
            System.out.println("文件下载成功: " + filePath);
            return Boolean.TRUE;
            
        } catch (Exception e) {
            System.out.println("文件下载失败: " + e.getMessage());
            e.printStackTrace();
            return Boolean.FALSE;
        }
    }
    
    /**
     * 上传文件到URL（简化版本）
     * @param fileUrl 上传URL
     * @param fileName 文件名
     * @param filePath 文件路径
     * @return 上传结果
     */
    public static String uploadToUrl(String fileUrl, String fileName, String filePath) {
        // 这里可以实现文件上传逻辑
        // 由于具体上传逻辑可能需要根据实际需求定制，这里提供一个基础框架
        return "上传功能待实现";
    }
}